package CreationMode.Factory;

/**
 * <h3>23_Design_Patterns</h3>
 * <p>
 *     简单工厂
 *     我们可以发现简单工厂对于新增产品是无能为力的！不修改原有代码根本就没办法扩展!!!
 * </p>
 *
 * @author gdw
 * @since 2025-07-21 11:15:28
 */
public class SimpleFactory {
    public static void main(String[] args) {
        // 根据对应的类型返回相关产品
        CarFactory.createCar("奥迪").run();
        CarFactory.createCar("Byd").run();
    }
}
// 定义公共的接口
interface Car{
    void run();
}

class Audi implements Car{
    @Override
    public void run() {
        System.out.println("奥迪在跑...");
    }
}

class Byd implements Car{
    @Override
    public void run() {
        System.out.println("Byd在跑...");
    }
}

// 创建对应的简单工厂类
class CarFactory{
    public static Car createCar(String type){
        if("奥迪".equals(type)){
            return new Audi();
        }else if("Byd".equals(type)){
            return new Byd();
        }else{
            throw new RuntimeException("该产品不能生产");
        }
    }
}
